package com.sls.superlight.superlightstack; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.view.View; import android.view.ViewGroup; public class AnimationHandler { void animate(TransitionTypes type, final View from, final View to, final ViewGroup container, int duration){ switch (type) { case CROSSFADE: doCrossFade(from, to, container, duration); break; default: break; } } private static void doCrossFade(final View from, final View to, final ViewGroup container, int duration) { if(from != null) { from.animate() .alpha(0f) .setDuration(duration); to.setAlpha(0f); to.setVisibility(View.VISIBLE); container.addView(to); } if(to != null) { to.animate() .alpha(1f) .setDuration(duration) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); container.removeView(from); }}); } } public enum TransitionTypes { NONE, CROSSFADE } }